/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.eurotrader.controller;

import br.com.eurotrader.dao.BaseDao;
import br.com.eurotrader.interfaces.InterfaceEntidades;
import com.icesoft.faces.component.ext.HtmlDataTable;
import com.icesoft.faces.component.ext.RowSelectorEvent;
import java.util.List;
import javax.ejb.Local;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;

/**
 *
 * @author PROG01
 */
@Local
public interface BaseControllerInt<T, ID> {

    public BaseDao<T, ID> getObjetoDao();

    public void setObjetoDao(BaseDao<T, ID> objetoDao);

    public T getObjeto();

    public void setObjeto(T objeto);

    public void atualizar(ActionEvent event);

    public void salvar(ActionEvent event);

    public void excluir(ActionEvent event);

    public List todos();

    public List pesquisar(String sql);

    public InterfaceEntidades buscarPorChave(Object chave);

    public void objetoLimpo() throws InstantiationException, IllegalAccessException;

    public InterfaceEntidades objetoPreenchido(Object data);

//    public void getTodos(int maxPorPagina, int paginaAtual);
//    public Long getTotalDeRegistros();
//    public void getRegistrosConsultados(String parSql, String clausulaTotalDeRegistros);
    // public Long getTotalDeRegistros(String sql);
    public DataModel getColumnsModel();

    public void setColumnsModel(DataModel columnsModel);

    public DataModel getRowModel();

    public void setRowModel(DataModel rowModel);

    public Object getCellValue();

    public int getPaginaAtual();

    public void setPaginaAtual(int paginaAtual);

    public String primeiraPagina();

    public String ultimaPagina();

    public String proxima();

    public String anterior();

    public Long getProximaPagina();

    public Long getTotal();

//    public DataModel getTodosPaginacao();
    public Boolean validacoes(ActionEvent event);

//    public HtmlDataTable getTabela();

//    public void setTabela(HtmlDataTable tabela);

//    public void setDataTableOneRowSelected(Boolean selected);
//
//    public Boolean getDataTableOneRowSelected();

//    public void limpaLinhasTabela();

    public void listenerSelecaoTabela(RowSelectorEvent rse);

    public Object buscaPorCampo(String campo, String texto);

    public void visualizandoORegistro();
}
